﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using PeoplesJukebox.Core.MediaItems.Bases;
using PeoplesJukebox.Core.MediaItems;

namespace PeoplesJukebox.Services
{
    /// <summary>
    /// Contract for media player services
    /// </summary>
    [ServiceContract]
    public interface IPlayerService
    {
        /// <summary>
        /// Starts playback
        /// </summary>
        [OperationContract]
        void Start();

        /// <summary>
        /// Stops playback
        /// </summary>
        [OperationContract]
        void Stop();

        /// <summary>
        /// Skips playback to the next track
        /// </summary>
        [OperationContract]
        void Skip();

        /// <summary>
        /// Resets player
        /// </summary>
        [OperationContract]
        void Reset();

        /// <summary>
        /// Queues the given track 
        /// </summary>
        /// <param name="trackId">Track ID</param>
        [OperationContract]
        void Queue(string trackId);

        /// <summary>
        /// Returns the currently-playing track
        /// </summary>
        /// <returns>Current track</returns>
        [OperationContract]
        SelectedTrack GetCurrentTrack();
    }
}